Windows Task Scheduler

Jawaban singkat & jujur:

> **BISA bertambah otomatis setiap hari di localhost**,
> **TAPI** harus pakai **scheduler (task otomatis)**.
> Tanpa itu → **TIDAK akan pernah auto**.

Sekarang aku jelaskan **pilihan yang BENAR**, dari yang **paling gampang** sampai **paling rapi**.

---

# 🔹 OPSI 1 (PALING GAMPANG – DISARANKAN DI LOCALHOST)

### ➜ Pakai **Windows Task Scheduler**

Karena kamu pakai **XAMPP di Windows**, ini solusi **paling stabil**.

## 1️⃣ Buat file runner (sudah ada)

Kita sudah punya:

```
C:\xampp\htdocs\jwdnetwork\scripts\run_daily_bonus.php
```

## 2️⃣ Buat file `.bat`

Buat file baru:

```
C:\xampp\htdocs\jwdnetwork\run_daily_bonus.bat
```

Isi:

```bat
@echo off
php "C:\xampp\htdocs\jwdnetwork\scripts\run_daily_bonus.php"
```

> Pastikan path `php.exe` benar. Biasanya:

```
C:\xampp\php\php.exe
```

Kalau mau aman, ganti jadi:

```bat
"C:\xampp\php\php.exe" "C:\xampp\htdocs\jwdnetwork\scripts\run_daily_bonus.php"
```

---

## 3️⃣ Set di **Task Scheduler**

1. Buka **Task Scheduler**
2. Create **Basic Task**
3. Name: `JWD Daily Bonus`
4. Trigger: **Daily**
5. Time: `00:05`
6. Action: **Start a Program**
7. Program/script:

   ```
   C:\xampp\php\php.exe
   ```
8. Add arguments:

   ```
   C:\xampp\htdocs\jwdnetwork\scripts\run_daily_bonus.php
   ```
9. Start in:

   ```
   C:\xampp\htdocs\jwdnetwork\
   ```
10. Finish

✅ **SELESAI**

---

# 🔹 OPSI 2 (ALTERNATIF): Pseudo-Cron via Web (TIDAK IDEAL)

Dipanggil saat user buka web (kurang akurat):

```php
// di dashboard member / admin
if (date('H:i') >= '00:00' && date('H:i') <= '00:10') {
  @file_get_contents('http://localhost/jwdnetwork/scripts/run_daily_bonus.php');
}
```

❌ Tidak direkomendasikan untuk bonus uang.

---

# 🔹 OPSI 3 (CRON LINUX – BUKAN UNTUK LOCALHOST WINDOWS)

Hanya relevan kalau:

* Server VPS / Linux
* Shared hosting

---

# ✅ CARA CEK AUTO JALAN ATAU TIDAK

### 1️⃣ Lihat tanggal terakhir dibayar

```sql
SELECT member_id, last_paid_date, days_paid
FROM plan_a_daily_bonus;
```

Kalau besok `last_paid_date` berubah → **AUTO JALAN**

---

### 2️⃣ Lihat transaksi wallet tiap hari

```sql
SELECT created_at
FROM wallet_transactions
WHERE tx_type='daily_bonus'
ORDER BY id DESC
LIMIT 5;
```

Tanggal harus **bertambah tiap hari**.

---

# ⚠️ PENTING (ANTI DOBEL)

Sistem kamu **SUDAH AMAN** karena:

* `last_paid_date < today`
* `days_paid <= 90`
* 1 hari hanya bisa 1 kali bayar

Jadi walau Task Scheduler kepanggil 2x → **tidak dobel bayar**.

---

# 🎯 KESIMPULAN

| Pertanyaan              | Jawaban                   |
| ----------------------- | ------------------------- |
| Bisa auto di localhost? | ✅ BISA                    |
| Perlu cron/task?        | ✅ WAJIB                   |
| Paling aman?            | 🥇 Windows Task Scheduler |
| Aman dari dobel?        | ✅ YA                      |

Kalau kamu mau, aku bisa:

* buatkan **file `.bat` + checklist screenshot step-by-step**
* buatkan **log file harian** (`daily_bonus.log`)
* buatkan **mode test (percepat ke 1 menit)**

Tinggal bilang: **BUATKAN TASK SCHEDULER** atau **MODE TEST CEPAT**.
